
const path = require('path');
const fs = require('fs-extra');
const archiver = require('archiver');
// 定义源文件夹和目标文件夹的路径
const sourceFolder = './public';
const targetFolder = './.next/standalone';

// 使用 fs.rename 将源文件夹移动到目标位置
fs.copy(sourceFolder, path.join(targetFolder, path.basename(sourceFolder)),{ overwrite: false }, (err) => {
    if (err) {
        console.error('移动文件夹失败:', err);
      } else {
        // // 在复制成功后，删除源文件夹（可选）
        // fs.remove(sourceFolder, (err) => {
        //   if (err) {
        //     console.error('删除源文件夹失败:', err);
        //   } else {
        //     console.log('文件夹移动成功！');
        //   }
        // });
      }
});
console.log("开始压缩文件夹...");
//压缩
// 源文件夹路径
const sourceZipFolder = './.next/standalone';

// 压缩文件的输出路径和名称
const outputZipFile = './standalone.zip';
// 创建一个可写流来写入压缩文件
const output = fs.createWriteStream(outputZipFile);
// 创建一个 archiver 实例
const archive = archiver('zip', {
  zlib: { level: 9 }, // 设置压缩级别，可选
});
// 监听错误事件
archive.on('error', (err) => {
  console.error('压缩过程中发生错误:', err);
});

// 将可写流连接到 archiver 实例
archive.pipe(output);

// 添加源文件夹到压缩文件
archive.directory(sourceZipFolder, false);

// 完成压缩
archive.finalize();

// 当压缩完成时触发的事件
output.on('close', () => {
  console.log('文件夹已成功压缩至:', outputZipFile);
});
